<!-- This comment will put IE 6, 7 and 8 in quirks mode -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>shark::QpStoppingCondition Struct Reference</title>
<script type="text/javaScript" src="search/search.js"></script>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script>
<script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3.0.1/es5/tex-mml-chtml.js"></script>
<script src="../../mlstyle.js"></script>
<link href="../css/besser.css" rel="stylesheet" type="text/css"/>
</head>
<!-- pretty cool: each body gets an id tag which is the basename of the web page  -->
<!--              and allows for page-specific CSS. this is client-side scripted, -->
<!--              so the id will not yet show up in the served source code -->
<script type="text/javascript">
    jQuery(document).ready(function () {
        var url = jQuery(location).attr('href');
        var pname = url.substr(url.lastIndexOf("/")+1, url.lastIndexOf(".")-url.lastIndexOf("/")-1);
        jQuery('#this_url').html('<strong>' + pname + '</strong>');
        jQuery('body').attr('id', pname);
    });
</script>
<body>
    <div id="shark_old">
        <div id="wrap">
            <div id="header">
                <div id="site-name"><a href="../../sphinx_pages/build/html/index.html">Shark machine learning library</a></div>
                <ul id="nav">
                    <li >
                        <a href="../../sphinx_pages/build/html/rest_sources/installation.html">Installation</a>
                    </li>
		    <li >
                        <a href="../../sphinx_pages/build/html/rest_sources/tutorials/tutorials.html">Tutorials</a>
                    </li>
		    <li >
                        <a href="../../sphinx_pages/build/html/rest_sources/benchmark.html">Benchmarks</a>
                    </li>
                    <li class="active">
                        <a href="classes.html">Documentation</a>
                        <ul>
                            <li class="first"></li>
                            <li><a href="../../sphinx_pages/build/html/rest_sources/quickref/quickref.html">Quick references</a></li>
                            <li><a href="classes.html">Class list</a></li>
                            <li class="last"><a href="group__shark__globals.html">Global functions</a></li>
                        </ul>
                    </li>
                </ul>
            </div>
        </div>
    </div>
<div id="doxywrapper">
<!--
    <div id="global_doxytitle">Doxygen<br>Documentation:</div>
-->
    <div id="navrow_wrapper">
<!-- Generated by Doxygen 1.9.8 -->
<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="namespaceshark.html">shark</a></li><li class="navelem"><a class="el" href="structshark_1_1_qp_stopping_condition.html">QpStoppingCondition</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="structshark_1_1_qp_stopping_condition-members.html">List of all members</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-attribs">Public Attributes</a>  </div>
  <div class="headertitle"><div class="title">shark::QpStoppingCondition Struct Reference</div></div>
</div><!--header-->
<div class="contents">

<p>stopping conditions for quadratic programming  
 <a href="structshark_1_1_qp_stopping_condition.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="_quadratic_program_8h_source.html">shark/Algorithms/QP/QuadraticProgram.h</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a71120944a5b9a474f278fb346d82019c" id="r_a71120944a5b9a474f278fb346d82019c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structshark_1_1_qp_stopping_condition.html#a71120944a5b9a474f278fb346d82019c">QpStoppingCondition</a> (double accuracy=0.001, unsigned long long iterations=0xffffffff, double value=1e100, double seconds=1e100)</td></tr>
<tr class="memdesc:a71120944a5b9a474f278fb346d82019c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor.  <br /></td></tr>
<tr class="separator:a71120944a5b9a474f278fb346d82019c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-attribs" name="pub-attribs"></a>
Public Attributes</h2></td></tr>
<tr class="memitem:addc2ea7f6d15eb25187586e329f33ace" id="r_addc2ea7f6d15eb25187586e329f33ace"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structshark_1_1_qp_stopping_condition.html#addc2ea7f6d15eb25187586e329f33ace">minAccuracy</a></td></tr>
<tr class="memdesc:addc2ea7f6d15eb25187586e329f33ace"><td class="mdescLeft">&#160;</td><td class="mdescRight">minimum accuracy to be achieved, usually KKT violation  <br /></td></tr>
<tr class="separator:addc2ea7f6d15eb25187586e329f33ace"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af747ff263a208a610fc2ca4dccec44d6" id="r_af747ff263a208a610fc2ca4dccec44d6"><td class="memItemLeft" align="right" valign="top">unsigned long long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structshark_1_1_qp_stopping_condition.html#af747ff263a208a610fc2ca4dccec44d6">maxIterations</a></td></tr>
<tr class="memdesc:af747ff263a208a610fc2ca4dccec44d6"><td class="mdescLeft">&#160;</td><td class="mdescRight">maximum number of decomposition iterations (default to 0 - not used)  <br /></td></tr>
<tr class="separator:af747ff263a208a610fc2ca4dccec44d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aef0871941c7b0acd271996801b05b47b" id="r_aef0871941c7b0acd271996801b05b47b"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structshark_1_1_qp_stopping_condition.html#aef0871941c7b0acd271996801b05b47b">targetValue</a></td></tr>
<tr class="memdesc:aef0871941c7b0acd271996801b05b47b"><td class="mdescLeft">&#160;</td><td class="mdescRight">target objective function value (defaults to 1e100 - not used)  <br /></td></tr>
<tr class="separator:aef0871941c7b0acd271996801b05b47b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2f2037cc62c817ff88ec0801591a0240" id="r_a2f2037cc62c817ff88ec0801591a0240"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structshark_1_1_qp_stopping_condition.html#a2f2037cc62c817ff88ec0801591a0240">maxSeconds</a></td></tr>
<tr class="memdesc:a2f2037cc62c817ff88ec0801591a0240"><td class="mdescLeft">&#160;</td><td class="mdescRight">maximum process time (defaults to 1e100 - not used)  <br /></td></tr>
<tr class="separator:a2f2037cc62c817ff88ec0801591a0240"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>stopping conditions for quadratic programming </p>
<dl class="section user"><dt></dt><dd>The <a class="el" href="structshark_1_1_qp_stopping_condition.html" title="stopping conditions for quadratic programming">QpStoppingCondition</a> structure defines conditions for stopping the optimization procedure.</dd></dl>
<dl class="section user"><dt></dt><dd>For practical considerations the solvers supports several stopping conditions. Usually, the optimization stops if the Karush-Kuhn-Tucker (KKT) condition for optimality are satisfied up to a certain accuracy. In the case the optimal function value is known a priori it is possible to stop as soon as the objective is above a given threshold. In both cases it is very difficult to predict the runtime. Therefore the solver can stop after a predefined number of iterations or after a predefined time period. In these cases the solution found will not be near optimal. In SVM training, using sensitive settings, this should happen only during model selection while investigating hyperparameters with poor generalization ability. </dd></dl>

<p class="definition">Definition at line <a class="el" href="_quadratic_program_8h_source.html#l00096">96</a> of file <a class="el" href="_quadratic_program_8h_source.html">QuadraticProgram.h</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a71120944a5b9a474f278fb346d82019c" name="a71120944a5b9a474f278fb346d82019c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a71120944a5b9a474f278fb346d82019c">&#9670;&#160;</a></span>QpStoppingCondition()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">shark::QpStoppingCondition::QpStoppingCondition </td>
          <td>(</td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>accuracy</em> = <code>0.001</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned long long&#160;</td>
          <td class="paramname"><em>iterations</em> = <code>0xffffffff</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>value</em> = <code>1e100</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>seconds</em> = <code>1e100</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Constructor. </p>

<p class="definition">Definition at line <a class="el" href="_quadratic_program_8h_source.html#l00099">99</a> of file <a class="el" href="_quadratic_program_8h_source.html">QuadraticProgram.h</a>.</p>

<p class="reference">References <a class="el" href="structshark_1_1_qp_stopping_condition.html#af747ff263a208a610fc2ca4dccec44d6">maxIterations</a>, <a class="el" href="structshark_1_1_qp_stopping_condition.html#a2f2037cc62c817ff88ec0801591a0240">maxSeconds</a>, <a class="el" href="structshark_1_1_qp_stopping_condition.html#addc2ea7f6d15eb25187586e329f33ace">minAccuracy</a>, and <a class="el" href="structshark_1_1_qp_stopping_condition.html#aef0871941c7b0acd271996801b05b47b">targetValue</a>.</p>

</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a id="af747ff263a208a610fc2ca4dccec44d6" name="af747ff263a208a610fc2ca4dccec44d6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af747ff263a208a610fc2ca4dccec44d6">&#9670;&#160;</a></span>maxIterations</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned long long shark::QpStoppingCondition::maxIterations</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>maximum number of decomposition iterations (default to 0 - not used) </p>

<p class="definition">Definition at line <a class="el" href="_quadratic_program_8h_source.html#l00111">111</a> of file <a class="el" href="_quadratic_program_8h_source.html">QuadraticProgram.h</a>.</p>

<p class="reference">Referenced by <a class="el" href="structshark_1_1_qp_stopping_condition.html#a71120944a5b9a474f278fb346d82019c">QpStoppingCondition()</a>, <a class="el" href="classshark_1_1_qp_config.html#aa0ebe3d3e7163bb1eb7a5f3a56b95644">shark::QpConfig::setMaxIterations()</a>, <a class="el" href="classshark_1_1_qp_box_linear.html#ab8274b4499b2b4c342735a3ab338e2fb">shark::QpBoxLinear&lt; InputT &gt;::solve()</a>, <a class="el" href="classshark_1_1_qp_solver.html#aef891551dc0bc92ab4571cb7d479706f">shark::QpSolver&lt; Problem, SelectionStrategy &gt;::solve()</a>, and <a class="el" href="classshark_1_1_qp_mc_linear.html#a468f877984aab4f95122083bf4a87152">shark::QpMcLinear&lt; InputT &gt;::solve()</a>.</p>

</div>
</div>
<a id="a2f2037cc62c817ff88ec0801591a0240" name="a2f2037cc62c817ff88ec0801591a0240"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2f2037cc62c817ff88ec0801591a0240">&#9670;&#160;</a></span>maxSeconds</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double shark::QpStoppingCondition::maxSeconds</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>maximum process time (defaults to 1e100 - not used) </p>

<p class="definition">Definition at line <a class="el" href="_quadratic_program_8h_source.html#l00117">117</a> of file <a class="el" href="_quadratic_program_8h_source.html">QuadraticProgram.h</a>.</p>

<p class="reference">Referenced by <a class="el" href="structshark_1_1_qp_stopping_condition.html#a71120944a5b9a474f278fb346d82019c">QpStoppingCondition()</a>, <a class="el" href="classshark_1_1_qp_config.html#a1453635db8f97cec56f4f943e31e7520">shark::QpConfig::setMaxSeconds()</a>, <a class="el" href="classshark_1_1_qp_box_linear.html#ab8274b4499b2b4c342735a3ab338e2fb">shark::QpBoxLinear&lt; InputT &gt;::solve()</a>, <a class="el" href="classshark_1_1_qp_solver.html#aef891551dc0bc92ab4571cb7d479706f">shark::QpSolver&lt; Problem, SelectionStrategy &gt;::solve()</a>, and <a class="el" href="classshark_1_1_qp_mc_linear.html#a468f877984aab4f95122083bf4a87152">shark::QpMcLinear&lt; InputT &gt;::solve()</a>.</p>

</div>
</div>
<a id="addc2ea7f6d15eb25187586e329f33ace" name="addc2ea7f6d15eb25187586e329f33ace"></a>
<h2 class="memtitle"><span class="permalink"><a href="#addc2ea7f6d15eb25187586e329f33ace">&#9670;&#160;</a></span>minAccuracy</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double shark::QpStoppingCondition::minAccuracy</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>minimum accuracy to be achieved, usually KKT violation </p>

<p class="definition">Definition at line <a class="el" href="_quadratic_program_8h_source.html#l00108">108</a> of file <a class="el" href="_quadratic_program_8h_source.html">QuadraticProgram.h</a>.</p>

<p class="reference">Referenced by <a class="el" href="_c_svm_tutorial_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627">main()</a>, <a class="el" href="structshark_1_1_qp_stopping_condition.html#a71120944a5b9a474f278fb346d82019c">QpStoppingCondition()</a>, <a class="el" href="classshark_1_1_qp_config.html#a435ff9b5dd3337872c2e49d46c95c417">shark::QpConfig::setMinAccuracy()</a>, <a class="el" href="classshark_1_1_qp_box_linear.html#ab8274b4499b2b4c342735a3ab338e2fb">shark::QpBoxLinear&lt; InputT &gt;::solve()</a>, <a class="el" href="classshark_1_1_qp_solver.html#aef891551dc0bc92ab4571cb7d479706f">shark::QpSolver&lt; Problem, SelectionStrategy &gt;::solve()</a>, <a class="el" href="classshark_1_1_qp_mc_linear.html#a468f877984aab4f95122083bf4a87152">shark::QpMcLinear&lt; InputT &gt;::solve()</a>, <a class="el" href="classshark_1_1_bias_solver.html#a94431a20658c032890cbb34fa0e0cba0">shark::BiasSolver&lt; Matrix &gt;::solve()</a>, and <a class="el" href="classshark_1_1_bias_solver_simplex.html#a60479f4edcd9038d612da5c34d4e6022">shark::BiasSolverSimplex&lt; Matrix &gt;::solve()</a>.</p>

</div>
</div>
<a id="aef0871941c7b0acd271996801b05b47b" name="aef0871941c7b0acd271996801b05b47b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aef0871941c7b0acd271996801b05b47b">&#9670;&#160;</a></span>targetValue</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double shark::QpStoppingCondition::targetValue</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>target objective function value (defaults to 1e100 - not used) </p>

<p class="definition">Definition at line <a class="el" href="_quadratic_program_8h_source.html#l00114">114</a> of file <a class="el" href="_quadratic_program_8h_source.html">QuadraticProgram.h</a>.</p>

<p class="reference">Referenced by <a class="el" href="structshark_1_1_qp_stopping_condition.html#a71120944a5b9a474f278fb346d82019c">QpStoppingCondition()</a>, and <a class="el" href="classshark_1_1_qp_config.html#ac13ad894e8ac68325c6f7ebb629e644c">shark::QpConfig::setTargetValue()</a>.</p>

</div>
</div>
<hr/>The documentation for this struct was generated from the following file:<ul>
<li>include/shark/Algorithms/QP/<a class="el" href="_quadratic_program_8h_source.html">QuadraticProgram.h</a></li>
</ul>
</div><!-- contents -->
</div>
</body>
</html>
